package com.landinfo.service;

import com.alibaba.fastjson.JSONObject;
import com.landinfo.service.dto.DashboardConfigDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Optional;

/**
 * Service Interface for managing DashboardConfiguration.
 */
public interface DashboardConfigService {

    /**
     * Save a dashboardConfig.
     *
     * @param dashboardConfigDTO the entity to save
     * @return the persisted entity
     */
    DashboardConfigDTO save(DashboardConfigDTO dashboardConfigDTO);

    /**
     * Get all the dashboardConfigs.
     *
     * @param pageable the pagination information
     * @return the list of entities
     */
    Page<DashboardConfigDTO> findAll(Pageable pageable);


    /**
     * Get the "id" dashboardConfig.
     *
     * @param id the id of the entity
     * @return the entity
     */
    Optional<DashboardConfigDTO> findOne(String id);

    /**
     * Delete the "id" dashboardConfig.
     *
     * @param id the id of the entity
     */
    void delete(String id);

    Optional<DashboardConfigDTO> findByName(String name);

    void deleteByName(String name);

    JSONObject getVoiceToken();
}
